iT邦幫忙

2022 iThome 鐵人賽

1
影片教學

從建立環境、驗證漏洞、感受漏洞來學習資安系列 第 37

Day35 - VSCode 又是你,而且現在居然還沒辦法修補這個漏洞QQ (CVE-2022-45025)

  • 分享至 

  • xImage
  •  

VS Code "又" /images/emoticon/emoticon56.gif 出現一個 RCE 漏洞,但是這次是出現在 markdown-preview-enhanced 插件上面,目前我測試的時間點(2022/12/11) 還沒有釋出修補版本,所以最近用這個插件開 Markdown 檔案的時候要小心啊 /images/emoticon/emoticon21.gif

Yes

  1. 下載 VSCode 並安裝
  2. 打開 VSCode 並切換到 Extensions 畫面,並搜尋 shd101wyy.markdown-preview-enhanced 並安裝及啟用
  3. git clone https://github.com/yuriisanin/CVE-2022-45025.git
  4. 調整 payload 如下 :
<!-- @import "$(touch /tmp/pwned | exit 0)hello.pdf" -->
  1. 打開惡意 md 檔案,參考 用筆記也可以管理專案(二):Markdown Preview Enhanced,按右鍵後選擇 [Markdown Preview Enable...]
  2. ls /tmp #會看到檔案被建立了
  3. 調整惡意腳本改為 sleep 方便測試
<!-- @import "$(sleep 999999 | exit 0)hello.pdf" -->
child_process.spawn(command[, args][, options])
  1. 安裝 nodejs,可以從 apt 下載或是去官網下載後加入 PATH
  2. wget https://nodejs.org/dist/v18.12.1/node-v18.12.1-linux-x64.tar.xz
  3. tar xvf node-v18.12.1-linux-x64.tar.xz
  4. 將執行檔案目錄加到 PATH 底下
  5. git clone https://github.com/shd101wyy/mume.git
  6. git clone https://github.com/shd101wyy/vscode-markdown-preview-enhanced.git
  7. npm install --global yarn
  8. npm install --global typescript
  9. cd mume && npm install && tsc # typescript 編譯參考 Compile TypeScript Project
  10. 發現會出錯,這邊不解XD,直接幹掉程式碼
  11. 參考 Check if a file exists in typescript 修改檔案判斷邏輯 (這個只是我隨便寫寫的修補方式,主要是討論判斷檔案的修補邏輯而已)
var task = null ;
if (fs.existsSync(pdfFilePath)) {
    task = spawn(
    "pdf2svg",
    [
        `"${pdfFilePath}"`,
        `"${path.resolve(svgDirectoryPath, svgFilePrefix + "%d.svg")}"`,
        "all",
    ],
    { shell: true },
    );
} else {
    task = spawn(
    "pdf2svg",
    [
        `"./test.pdf"`,
        `"${path.resolve(svgDirectoryPath, svgFilePrefix + "%d.svg")}"`,
        "all",
    ],
    { shell: true },
    );
}
  1. cd vscode-markdown-preview-enhanced && npm install
  2. 將 out 的 pdf.js 複製到 node_modules/@shd101wyy/mume/out/src/ 底下
  3. npm install -g @vscode/vsce
  4. vsce package # 編譯出 vsix 檔案
  5. 進入 VSCode 移除舊版,安裝新版,然後再開一次檔案,這次就會發現不會執行指令

上一篇
Day34 - 沒時間解釋了~~ 趕快上車更新 VS Code 啦~~(CVE-2022-41034)
系列文
從建立環境、驗證漏洞、感受漏洞來學習資安37
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言